
/**********************************************************************************\
** 文件名称: motor.h
** 创建人员: YCG
** 创建日期: 2018-12-14
** 文档描述: 
** 版本代号: V0.1
** 版本说明: 初始版本
\********************************************************************************/
#ifndef __MOTOR_H_
#define __MOTOR_H_
#include "main.h"
//#include "Servo.h"

//#define MOTOR_USE_SERVO 

//#define MOTOR_DEBUG
#ifdef  MOTOR_DEBUG
#include "uart.h"
#define  MOTOR_Printf(fmt,...)   Uprintf(fmt,__VA_ARGS__)
#else
#define  MOTOR_Printf(...)
#endif

#define MOTOR_TIME TIM3         //定义电机使用的定时器

#define L_INA_PwmSet(duty)   LL_TIM_OC_SetCompareCH1(MOTOR_TIME,LL_TIM_GetAutoReload(MOTOR_TIME)*(duty)/100)
#define L_INB_PwmSet(duty)   LL_TIM_OC_SetCompareCH2(MOTOR_TIME,LL_TIM_GetAutoReload(MOTOR_TIME)*(duty)/100)
#define R_INA_PwmSet(duty)   LL_TIM_OC_SetCompareCH3(MOTOR_TIME,LL_TIM_GetAutoReload(MOTOR_TIME)*(duty)/100)
#define R_INB_PwmSet(duty)   LL_TIM_OC_SetCompareCH4(MOTOR_TIME,LL_TIM_GetAutoReload(MOTOR_TIME)*(duty)/100)

#define MOTOR_ONLY_SPEED 0    //仅仅设置速度，t无效
#define MOTOR_HIGH_PRI   1    //设置高优先级的速度运行
#define MOTOR_LOW_PRI    2    //设置低优先级速度运行

#define MOTOR_MAX_TIME   1000   ////最大的运行时间

void MoterTimeScan(uint32_t time);
void MoterInit(uint16_t count);
void Motor_IRQHandler(void);
void SpeedCtrl(float left, float right, uint16_t t, uint8_t mode);
void SetSpeed(float left, float right);
#endif

/********************************End of File************************************/


